package com.hy.mydesktop.client.component.factory;

import com.extjs.gxt.ui.client.widget.layout.BoxLayout.BoxLayoutPack;
import com.extjs.gxt.ui.client.widget.layout.VBoxLayout;
import com.extjs.gxt.ui.client.widget.layout.VBoxLayout.VBoxLayoutAlign;
import com.hy.mydesktop.client.component.meta.VBoxLayoutModelEnum;
import com.hy.mydesktop.shared.persistence.domain.gxt.GxtComponentMetaNodeModel;

/**
 * 
 * <ul>
 * <li>开发作者：汤莉</li>
 * <li>设计日期：2010-8-31；时间：下午04:21:30</li>
 * <li>类型名称：VboxLayoutFactory</li>
 * <li>设计目的：</li>
 * </ul>
 * <ul>
 * <b>修订编号：</b>
 * <li>修订日期：</li>
 * <li>修订作者：</li>
 * <li>修订原因：</li>
 * <li>修订内容：</li>
 * </ul>
 */
public class VboxLayoutFactory {
	
	/**
	 * 
	 * <ul>
	 * <li>方法含义：创建VboxLayout布局</li>
	 * <li>方法作者：汤莉</li>
	 * <li>编写日期：2010-8-31；时间：下午下午04:22:11</li>
	 * </ul>
	 * <ul>
	 * <b>修订编号：</b>
	 * <li>修订日期：</li>
	 * <li>修订作者：</li>
	 * <li>修订原因：</li>
	 * <li>修订内容：</li>
	 * </ul>
	 * @param gxtComponentMetaNodeModel
	 * @return
	 */
	public static VBoxLayout createVboxLayout(GxtComponentMetaNodeModel gxtComponentMetaNodeModel){
		return configureVboxLayout(gxtComponentMetaNodeModel);
	}
	
	/**
	 * 
	 * <ul>
	 * <li>方法含义：配置VboxLayout的相关属性</li>
	 * <li>方法作者：汤莉</li>
	 * <li>编写日期：2010-8-31；时间：下午下午04:22:52</li>
	 * </ul>
	 * <ul>
	 * <b>修订编号：</b>
	 * <li>修订日期：</li>
	 * <li>修订作者：</li>
	 * <li>修订原因：</li>
	 * <li>修订内容：</li>
	 * </ul>
	 * @param gxtComponentMetaNodeModel
	 * @return
	 */
	private static VBoxLayout configureVboxLayout(GxtComponentMetaNodeModel gxtComponentMetaNodeModel){
		VBoxLayout layout=createDefaultVBoxLayout();
		
	if(gxtComponentMetaNodeModel.get(VBoxLayoutModelEnum.VALIGN.name().toLowerCase())!=null){
			
		layout.setVBoxLayoutAlign((VBoxLayoutAlign)gxtComponentMetaNodeModel.get(VBoxLayoutModelEnum.VALIGN.name().toLowerCase()));
	}
	if(gxtComponentMetaNodeModel.get(VBoxLayoutModelEnum.HALIGN.name().toLowerCase())!=null){
		
		layout.setPack((BoxLayoutPack)gxtComponentMetaNodeModel.get(VBoxLayoutModelEnum.HALIGN.name().toLowerCase()));
	}
		
		return layout;
	}
	
	/**
	 * 
	 * <ul>
	 * <li>方法含义：创建默认的VBoxLayout</li>
	 * <li>方法作者：汤莉</li>
	 * <li>编写日期：2010-8-31；时间：下午下午04:24:19</li>
	 * </ul>
	 * <ul>
	 * <b>修订编号：</b>
	 * <li>修订日期：</li>
	 * <li>修订作者：</li>
	 * <li>修订原因：</li>
	 * <li>修订内容：</li>
	 * </ul>
	 * @return
	 */
	private static VBoxLayout createDefaultVBoxLayout(){
		VBoxLayout layout=new VBoxLayout();
		layout.setPack(BoxLayoutPack.CENTER);
		layout.setVBoxLayoutAlign(VBoxLayoutAlign.CENTER);
		return layout;
	}
}
